Custom JS property support for form element arrays added.
Implemented window.closed
Fixed String.replace() - when first argument is a string, it is now converted to a flat regexp
Be like IE and Opera and don't reserve keywords that are supposed to be reserve for future use
Improved error message for function declarations where the first parameter is not an identifier
Tweaked handling of number literals that have a leading zero - now the number is treated as decimal instead of octal if any digit in the number is bigger than 7
The Date constructor now creates the date relative to local time when the parameter is a string and contains no timezone information
Fixed a few problems with location.<prop> items
'this' is now retained for eval() calls
Added area.onClick support
Added support for body.onUnload and frameset.onUnload
Fixed a few Name and ID related problems
Cleaned up try...catch handling, and removed a memleak
When converting NaN to an integer, the result is now 0 (as per ECMA-263)
Fixed problems caused when passing the current arguments object to another function, but specifying less than the declared arguments for that function
Fixed retention of arguments objects across function calls, which got broken in the declaration space rewrite
Rewrote parseInt(), which didn't strip leading whitespace, handle negative values or implied hexadecimal values, and the radix parameter was not always adhered to
Correct handling of out of bounds references to Option[]
Made window.focus() use the Smart Window Activation option
Fixed hits that occurred with syntax errors involving the if, with and while keywords (e.g. "with = 1" and "while = 1")
Implemented "instanceof" and "in" special operators
Error messages now also specify the class of error (as per the different error object types)
Implemented Error, EvalError, RangeError, ReferenceError, SyntaxError, TypeError and URIError objects
Restructured error handling so errors can be caught with try...catch
Implemented try...catch and throw statements (to JS1.5 spec)
Major rewrite of local function declaration space handling, to allow nested functions to inherit values from the context in which they were originally defined, rather than the context from which the function is being called from
Math.random() no longer relies on SAS/C's initial internal seed, so the random number sequence is no longer the same in each session
Fixed double->string converter, which was adding an extra '-' char to numbers with a negative exponent value
Allow RegExp literals inside []
EOLs are now handled properly in ?: expressions
Leading zeroes in number literals now skipped
When converting string variables/literals to number, no longer try to interpret an strings as an octal number
Added dummy functions for captureEvents
Fixed problems with cookies and ? URLs
Stripping \r from strings before displaying them
Fixed problems with arrays and toString() and valueOf()
Tweaked handling of nested comments so that /*/*/ is valid
Fixed a nasty recursion bug concerning the function prototype object, which would cause stack overflow followed by meltdown
Only treat --> as a comment if it's at the start of a line, as to not break valid expressions such as "n-->0"
Fixed broken parsing of \x hex escapes in strings
Skip EOLs in empty object initializer expressions
Turns out the fix for memory loss problem in 23.10 wasn't quite right and could cause hits or free memory twice in a worst case scenario - have now found the real root of the bug, and this should now be fully fixed
IBrowse now allows white space at the end of </script>
String.indexOf() now properly checks for out of range fromIndex
Now short-circuit evaluation really does work properly for ?: expressions, and handles the comma operator correctly too
Fixed non-initialization bugs in Array.concat, Array.push, Array.slice, Array.splice, String.split and String.match, which could cause random crashes and/or memory trashing
Recompiled everything to use SysBase rather than reading memory location 4 everytime before calling exec.library
Fixed expression short-circuit evaluation to work properly inside ?: expressions
All class methods called with more parameters than required no longer cause an error - extra arguments are silently ignored
The prototype objects for the internal classes are now setup to objects of the correct type, instead of them all using generic objects
The methods of the internal classes now inherit methods from the Function class
It turns out the program objects for top-level internal methods in each program space never got freed, which resulted in an approx 20K accumulated memory loss after visiting any page that uses JS, which only got freed when exiting IBrowse - now fixed!
Cleaned up program space allocation code - no longer crashes or causes hits on failure
Fixed some Option() memory trashing
Added support for onMouseOver and onMouseOut
Implemented isFinite() top-level method
Improved refresh when JS is updating JS objects on a page
Fixed problems accessing image maps properties
Date.setYear() is now able to handle a 4-digit year parameter, in addition to the usual year-1900 (no more strange eBay cookie expiration dates)
Negative array indices are now interpreted as a property name, rather than enforcing an out of range error
Fixed hits which could occur when JS accessed images on pages with <li>
Improved document indexing
When accessing a host object, if the host index is a number in a string, and the corresponding array item is undefined, we now try again treating the original string as a property name
Added custom ECMA-compatible float->string conversion routine, since SAS/C's gcvt() is too lossy, causing problems on some sites
Fixed bug in the logical expression short-circuit code
Fixed problems with forms containing elements named the same as the actual form
typeof hostref now evaluates to "object" instead of "hostObject"
Fixed cases where the end of an expression, during short-circuit evaluation of logical expressions, was not determined correctly
Functions defined locally inside a function should inherit the local declarations in the current scope
Fixed escaping of linebreaks in strings
Fixed problems with event handlers removing other event handlers
Added support for location.assign("url");
Fixed misc problems with document.getSelection();
Fixed problem with switch statements placed at the very end of a script
Fixed the for...in statement to only return the indexes of array elements that have actually been set by the script
Location.href assignments now use the URL of the page where the script was created as base when calculating the new URL
Reading a return value from a host function that doesn't actually set a return value is no longer treated as an error
Now IBrowse prompts when a js is trying to close a window
Fixed bug in RegExp character class bitmap creation which caused memory to get trashed for any chars above 127
Some minor fixes and optimizations in the RegExp module
When reporting errors, truncate string from both sides of the actual error when the total line length is greater than 80 chars (helps with those "JS all on one line" scripts)
Fixed searching for Image objects inside forms
Fixed excessive flicker on pages with lots of document.write
setTimeout and setInterval is now only cleared if the script that created them contains errors. All other scripts remain unaffected of errors
No longer ignore return statement errors when return is used outside a function
Made Image.border a writable property
Added Image.onLoad
Fixed name references in window.open();
Added JS1.3 call and apply methods for functions
Functions no longer inherit values from local variables defined in the calling function
Window.* custom properties are now tied to global variables of the same name, instead of the current instance (e.g. local variable)
Fixed all hostObject.valueOf() and hostObject.toString()
Fixed problems with Image.src
Fixed problems with Form.method
Undeclared hostref values now converted to undefined
Fixed problems with equality comparisons involving hostrefs and made the JSLib perform the comparison internally
Reading Image.src generated enforcerhits
Added prefs option disable window move and resize from javascripts
Fixed so that options[nn] where nn is larger than the array returns undefined
Fixed problems with pages that opens new browsers while parsing pages with form elements on
Fixed problems with Image objects beeing assigned urls multiple times
Fixed problems with location.reload();
Return value from eventhandlers that errors is now ignored when th rest of the execution is performed
Skip EOLs in period references, array indices and between prefix/postfix operators
Enabled error reporting for all errors that occur inside an expression, which will provide more precise messages and catch syntax errors that went by unnoticed until now
Fixed length property for objects - for string wrapper objects the length is now the actual string length, and is not a property of all objects other than arrays and functions (may be set by user); also, the length property of string and function objects can no longer be modified
When converting a number to a string, upto 21 significent digits are now produced (was 10) as per ECMA-263, before resorting to exponential notation
The arguments array is no longer read-only and can now also be indexed with numerical strings as well as numbers
When a function modifies the parameter(s) it was given, the corresponding arguments array entry is changed too, and vice versa
Fixed use of ?: expressions inside a [] pair
Added support for window.opener
Changed search order back for document properties. (See beta 54)
Fixed problems with option.value
Fixed problems with form[nn] references
Fixed problems with unnamed Textarea objects
Fixed problems with Form references not beeing equal
Fixed problems with image.name property
Local declarations in event handler text now take priority over variables of the same name that may be in the default-chain
Made Submit.value and Reset.value writeable
Fixed use of implicit functions inside functions
Fixed function expressions not working with named functions
Fixed problems with ?: statements that contain function expressions
Fixed escape() to escape correct chars, as per ECMA-262-3
Fixed unescape() - completely broken since 22.40
Event handlers now get their own declaration space
Setting location.href="#hash" does not load the page now
Fixed enforcerhits from link.hash etc. accesses
Fixed bug in Button.onClick
Fixed Radio.onClick return value
Changed search order for document. Now page elements are considered before built in properties are considered
Fixed problems with new Image() and setting properties
Fixed Image.onClick
Cleaned up image support
Added support onBlur support for: button, checkbox, radio, text, password, reset and submit
Added support onFocus support for: button, checkbox, radio, text, password, reset and submit
Added support for onChange in string gadgets
onclick are correctly handled for form submit and reset buttons now
Removed type=image from the form.elements array
mimeTypes[] can now be indexd with mime strings (like "text/html")
Added mimeType.description, mimeType.enabledPlugin, mimeType.suffixes and mimeType.type
Added support for toLocaleUpperCase, toLocaleLowerCase and localeCompare string object methods
Added support for toDateString, toTimeString, toLocaleDateString and toLocaleTimeString date object methods
Modified Date.toString text format to match IE/NS/Moz
Calling eval() with an empty string no longer results in an error
Fixed some problems with event handlers for <option> beeing called when it shouldn't
Fixed various problems with single item lists
Fixed problems with initially selected options from JS
Added support for select.options.selectedIndex
Fixed || and && operators to always return the left or right operand expression, and not a boolean value (e.g. the result of 2 || 3 is now 2 - and not true)
Numeric strings can now be used to access array members of host objects by index (e.g. document.images["0"] is equivalent to document.images[0])
Fixed problems with embedded JavaScripts in <option> tags
Array.reverse and Array.sort now return a reference to the array being worked on, instead of no return value
Array.slice can now be called with no parameters
RegExp literals are now recognized in ?: expressions
eval() is now able to handle a string representing just a RegExp
Fixed problems with using continue in a for statement
IBrowse now asks for abort of Javascripts after a user defined time
Fixed problems with very short setTimeout/setInterval
Fixed window.resizeTo() problems
Fixed problems with checkbox.value
Fixed problems with options.text and options.value
Added possibility of having and handling an invalid date object, instead of forcing an error
Date methods now handle NaN arguments properly
Convert empty strings to 0 (instead of NaN) during string->number conversion
Referer is now correctly set for external JavaScripts
Fixed escape() to correctly escape only needed chars.
added support for form.onReset and form.onSubmit
Fixed comparison operators where one operand was undefined - now those comparisons always evaluates to false again (got broken in an earlier change)
Fixed problems with recursive javascript loading. (eg ebay.com)
Fixed a few option.select bugs
Made option multiselect deselection visually more attractive
Fixed location.target problems
Made document.title writeable
Improved document.cookie
Fixed select.options array finally !?!
Fixed writing to select.length
Fixed problems with empty <area> tags
Skip EOLs before first function argument
Fixed bitwise operators to correctly handle negative or out of range values
Interchanged behaviour of the >> and >>> operators
Some more fixes for the == and != operators
Fixed % operator - now converts non-numeric operands
Fixed comments in expressions getting misinterpreted as RegExps
Skip EOLs after parenthesis in function expressions
Fixed .prototype for objects created with user-defined constructors
Fixed String.replace memleak (occurred when there were no matches)
Improved parsing of RegExp character classes
Allow unescaped '/' characters in character classes of RegExp literals, for IE compatibility
Fixed if...else to work with no statements (e.g. if (1); else;)
Changed <, >, <= and >= operators to behave much closer to the ECMA-262-3 spec, especially handling of objects and null or undefined values
Fixed the -, * and / operators to correctly handle a non-numeric right operand, as per ECMA-262-3
Fixed the +, == and != operators to correctly handle object operands (e.g. date objects), as per ECMA-262-3
Date object overhauled, now fully complying with JS 1.3/1.5, with zillions of fixes and enhancememts :) Includes input value range checking/handling, platform independent date->string format, handles dates before 1970, and fixed timezone handling,
Fixed parse error caused when break statement used inside an if...else statement
Fixed for, while and do...while statements, for when defined to execute no statments in the loop (e.g. while(i++<n);)
Fixed eval() - can handle normal statements now, as well as expressions, and now handles a non-string parameter correctly
Reimplemented Function.arguments object to allow it to be referenced outside the function it belongs to
Function object: now supports arity, arguments.callee and arguments.caller properties
Added support for new Option and rewrote the select.option handling due to this.
Fixed trailing comma not being handled after ?: expression
Improved handling of nested script tags in JavaScripts
Fixed setting .href to relative URLs.
Fixed a nasty crash bug when JavaScripts in frames were loading new URLs in windows already loading URLS
Fixed crashes caused by string.replace, when using regexps with the global flag
Cleaned up string.split and added support for regexp argument
Fixed regexp statics, which were incorrect if a match failed
Various minor optimizations and cleanups in the regexp code
Fixed navigator.mimeTypes
Fixed document.lastModified
Fixed window.innerWidth and window.innerHeight
Added support for window.stop
Fixed so that javascripts can be executed from location.href
Fixed history.go()
Fixed writing to document.location
Fixed window.parent
Fixed a problem which would crash IBrowse if pages with forms were generated on the fly using JS and the pages changed between 1st time and when you clicked back
Fixed window.prompt and window.print
Fixed select.onchange handler
Fixed window.find
Fixed document.cookie
Fixed problems with for(;;) statements
Added 1.2 syntax for window.setTimeout and window.setInterval
Fixed document.alinkColor, document.bgColor, document.fgColor, document.linkColor, document.vlinkColor and document.domain
Form elements are now rendered without <form> tags.
Table background rendering bug fixed.
– & — added.
€ support added.
<strike> added.
Empty attribute handing improved.
<tt> & <code> added.
Some rendering errors with <pre> fixed.
PC/Mac -> Amiga font mapping improved.
Meta-Refresh in frames improved.
Combined <a name=/href=> fixed.
\n & \r handling improved.
Whitespace handling in <title> improved.
Handling of < (<) improved.
Incorrectly terminated <select> markups fixed.
Text being rendered ontop of itself bug fixed.
Multiple cookies in one transaction bug fixed.
PC/Mac -> Amiga font mapping added.
<ol start=nnn> attribute added.
Prefs
Fixed a problem where the URL prefs could choose the wrong settings sometimes
Tweaked the save settings on exit to be more obvious when save as has been used
Saving settings on exit now opens a file requester so you can save as another filename.
Certificate handling improved.
"Expire now" added.
"Links expire after" added.
Opening time improved by delaying the AmiSSLv2 data loading until req.
Minor gadget fixes.
External viewer arguments now use a popup list.
Various layout improvements.
Moving custom toolbar buttons fixed.
Gadget ghosting fixed.
Tidied up prefs layout slightly.
"Default close method" added.
"Remap Windows characters" added.
ASL requester for Javascript Error log added.
Unimplemented options disabled or removed to clean up prefs.
Export option for CA Certs added.
Missing gadget titles in FAB Menus and Font prefs added.
Sanity checks to font prefs added.
"Editable source window" fixed.
Import option for CA Certs added.
Delayed image map loading fixed.
Delayed image sizing and loading fixed.
Printer settings asked to be saved on exit.
MIME main- and sub- types lengths increased to 34 characters.
"Enable Javascript move and resize" option added.
"Javascript timelimit" option added.
"Use Email for anonymous ftp login" fixed.
"Cache URLs" setting modified to relect actual function.
"New browser/window" handling changed and improved.
"Show space for new tab" option added.
"Show single browser tab" option added.
"Save URL Clipboard" option added.
"Stop GIF Animations" fixed.
Cipher selection added.
General
Increased max URL length to 8192 bytes and made sure that this length is checked everywhere
Fixed a memory leak inside framesets
Startup heuristics added to allow opening local files without file://localhost/
Excessive memory usage fixed.
Catalog cleaned up and improved.
ICE integration improved.
MUI Redraw without clear bug fixed.
URL parsers improved.
Date parsing improved.
NOPREFS and NOEDITHOTLIST tooltypes added and fixed.
Catalog strings tided up and improved.
Loading frames in an iconified window fixed.
Handling of MUI objects on webpages improved.
Error handling with ICE added.
IBCacheBrowser.mcc location changed to PROGDIR:ibcc.
Handling of active MUI objects on webpages improved.
Filename length limitation changed.
Copying of ASCII char 255 fixed.
Support for &body in mailto: links added.
Quitting IBrowse with running subtasks improved.
Removed references to Omnipresence.
Aborting downloads while cache-cleanup is performing improved.
User-Agent string improved.
Unknown gopher image(s) requests fixed.
%u placeholder in macros & fastlinks fixed.
Problems with missing Download directory fixed.
Save Source now prompts the user when the file already exists.
Download Log fixed.
Download time calculation improved to correct overflows.
V39 ram-hander bug work-around implemented.
Memleak on Forms fixed.
Memleak on Preferences fixed.
Memleak on Anim-GIF fixed.
Memleak on URL Clipboard fixed.
Out Of Memory errors on external mailto: bug fixed.
Textareas are now submitted with <CR><LF>.
Embedded object crash fixed.
Quitting with multiple browsers fixed.
URLClipboard autosaves on changes if enabled.
Low memory conditions improved.
Chipmem limit handling fixed.
Removed some hacks that are now part of MUI4.
I/O
Problems with overwriting files and asking user fixed.
Problems with file:// fixed.
DOS paths missing for external viewers fixed.
File comments now written before file download is complete.
Cached files smaller than header prefetch not loading fixed.
Files to be overwritten are now deleted before the download commences.
Downloaded files are now readable while being downloaded.
DOS script output redirection fixed.
Async IO updated to NDUK3.9.
URLs are converted to real filenames before requesters are opened.
ARexx
NEWBROWSER fixed.
* escaping fixed.
PRINT command added.
ADDHOTLIST command fixed.
QUIT FORCE command fixed.
NEW & NEWBROWSER commands added.
FLUSH command improved.
RELOAD, OPENHISTORY & FLUSH commands fixed.
QUERY command fixed.
CLOSEBROWSER command added.
CLOSEWINDOW command retained for backwards compatability.
Error checking when adding a new Hotlist entry fixed.
Printing
"Printer" destination fixed.
Save, Restore and Reset menus added.
Progress bar for printing added.
Backwards printing for Postscript enabled.
Problems with printing images cached in Fastmem fixed.
Images over 64k are now printed correctly.
Postscript driver updated to latest layout engine.
Internation Character handling fixed and improved.
Images
Hanging PNG images fixed.
PNG decoder upgraded to libpng-1.2.1.
Datatype scaling (when applicable) added.
Graphic corruption with Spectrum cards fixed.
Flushing background images fixed.
Caching of images where one of the sizes=0 fixed.
Image sizes and caching improved.
Wait For Image Size & non-cached images not being displayed fixed.
Resized image caching fixed.
Workaround for broken GIF dimensions added.
GIF Anim decoder delay work-around implemented.
PNG transparency bug fixed.
PNG decoder updated.
Summary of the changes in IBrowse2.2
Fixed tons of bugs in the disk cache code. Now IBrowse doesn't leave any
half empty dirs
Added OpenURL support for SendMail
Enabled parts of the WebAdvertControlLanguage
Misc fixes in the drag & drop GUI
IBrowse now appends "Transfer Interrupted" at the end of an interrupted page
Improved the automatic scroller code to not reparse the HTML when it is not
needed
Added support for displaying progressive jpegs progressively
Fixed a bug in the HTML reading code that wasted approx 50% of the memory
needed to load an HTML page
Now you can select in prefs if you want to have global proxy settings or
local (i.e. one setting per every browser)
Fixed the long standing bug where the download window didn't close after
deiconifying IBrowse when the download has ended
Added a few more prefs options and features to the download log window
Fixed Network URL MIME type
Rewrite the timer code to avoid a lockup bug in timer.device
Minor changes to the parser to be handle illegal params better
Fixed a Y2K compatibility bug with non Y2K aware servers
Added a prefs option to disable proxy usage when resuming transfers
Added SSL proxy tunneling support
Changed SSLv23 connection so that it doesn't try a TLSv1 request too
Improved the URL completer to select the shortest available URL if several
URLs matches the same beginning
Added a SECURE indicator for secure pages
Reenabled the CACHE indicator
If you drag and add a fastlink, a requster pops up to request the title
Requested URLs now have higher priority than images
The new action system for Fastlinks, Toolbar buttons and Macros is now
implemented and tested. Now you can assign custom actions to all elements
to execute internal arexx commands and external arexx scripts and dos
programs
Made IBrowse recoginize OS3.5 as a valid OS version
Fixed a bug that could cause problems when changing font preferences
Added support for font styles. Now you can define fontstyles that matches the
contents of tags
Added support for editable fabmenus
Open new window/browser now copies the originating windows settings
Added support for default download dirs. You can select dirs for a type or
for a main type. And you can specify if you don't want the file requester
Cycle gadgets with too many entries are now transformed into a listview
automatically
Removed the clicktabs if only 1 browser is open
Fixed the editable gui and made it alot easier to configure than before
Fixed crash problems when using multiple browser tabs
Fixed a bug that cause files to be left open in the cache
Added a better error msg system. Now all network errors are reported
with detailed descriptions
Added a much more flexible download system. Now the download window
keeps track of errors, failed downloads, completed downloads, queues
downloads etc
Added preliminary support sending SSL User Certificates
Added preliminary support receiving SSL User Certificates
Search from the menu works now again
Fixed a bug that caused some jpeg images not to be loaded
Fixed ALT-Left ALT-Right in the browsewindow
Fixed problems with soft links in ftp listings
Added http resume
Added ftp resume
Summary of the changes in IBrowse2.1
Reworked the inner workings of the http fetcher to be more robust
The changed source is now remembered correcly. To reset to the original
one, just select show source and press reset
Added priorities to the URL database. Now you can force some files to
be cached and others to not be cached
Improved the mailto functionality alot
Added support for http resume. ftp resume still to come..
Added support for frameset onload
Fixed a bug that caused downloaded files to become currupt if disk
got full during download
Added PostScript Level 1 print output
Added clip board support for the text edit field
The cache now cache now caches redirections too
Added a cool feature to the cache. Now it caches image sizes so pages
can be layouted before the images are actually loaded
Major rewrite of the table layout code. It should now deal with any
strange table that might be out there
Added more low level packet support to speed up the disk access
Benchmarks to follow.
Enabled assembly optimized dithering functions
Added the new cache browser supplied by Thomas Igracki
Added new font scheme
Subframes now appears in the history too
Added preliminary support for SSLv3. The SSL libraries will be
available later on
Added support for Netscape's AutoProxy configuration
Enabled the JavaScript engine. Far from all attributes are implemented
so please report any sites where JavaScript behaves stramge asap
Reworked the tableparser to be 2 call recursive instead of beeing
multiple call recursive This should improve performance alot for
recursive tables
Added clicktab support which allows you to have several webpages
active in the same window. This avoids cluttering of the screen
with many windows
Reworked the prefs system to work in a tree like fashion instead
Reworked the cachesystem to be more robust. It does now divide the
files into different subdirs to improve performence with many files
in the cache
Splitted the various imagedecoders into several image codecs to
reduce memory consumption if not eg PNG images are loaded
Added long awaited JavaScript support. The engine implements the full
ECMA script standard and is one of the fastest engines on any platform
Improved rendering speed a couple of magnitudes
Fixed a small bug in the gifdecoder which could cause problems if
animated gifs were interrupted at the wrong moment